import store from '@/store';
const Fly = require('flyio/dist/npm/wx');

var fly = new Fly();
const api = {
  pro: 'https://qsc.za-xd.com',
  dev: 'https://mini.utools.club',
  map: ''
};
fly.config = {
  // baseURL: process.env.NODE_ENV === 'production' ? api.pro : api.dev, //请求基地址
  baseURL: api.pro, //请求基地址
  //是否自动将Content-Type为“application/json”的响应数据转化为JSON对象，默认为true
  parseJson: true,
  timeout: '' //超时时间
};
// var token = store.getters.token || '';
//添加请求拦截器
fly.interceptors.request.use(request => {
  store.commit('setLoading', true);
  if (request.url.indexOf('http') > -1) {
    // 其他域名的连接请求
    request.baseURL = null;
  }

  // if (!token) {
  // 设置请求头
  //   token = store.getters.token;
  // }
  //可以显式返回request, 也可以不返回，没有返回值时拦截器中默认返回request
  return request;
});

//添加响应拦截器，响应拦截器会在then/catch处理之前执行
fly.interceptors.response.use(
  response => {
    store.commit('setLoading', false);
    //只将请求结果的data字段返回
    return Promise.resolve(response.data);
  },
  err => {
    store.commit('setLoading', false);
    //发生网络错误后会走到这里
    return Promise.resolve({
      message: err.message,
      status: err.status,
      result: ''
    });
  }
);

// 对flyio的实例重新封装成一个plugin ,方便 Vue.use(xxxx)
export default {
  install(Vue, Option) {
    // Object.defineProperty(Vue.prototype, '$http', { value: fly });
    Vue.prototype.$http = fly;
  }
};
